#include <bits/stdc++.h>
using namespace std;
int a[100005];
int p[100005]; // 第i天卖出可获最大利益
int q[100005]; // 第i天买入可获最大利益
int main() {
  int t;
  cin >> t;
  while (t--) {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++)
      cin >> a[i];
    memset(p, 0, sizeof(p));
    memset(q, 0, sizeof(q));
    // 第 i 天卖出可获最大利益 当天价格 - 前面几天的最低价
    int min1 = 0x3f3f3f3f;
    for (int i = 1; i <= n; i++) {
      min1 = min(min1, a[i]);
      p[i] = a[i] - min1;
    }
    // 第 i 天买入获得的最大利益 后面天的最大值 - 当天价格
    int max1 = -0x3f3f3f3f;
    for (int i = n; i > 0; i--) {
      max1 = max(max1, a[i]);
      q[i] = max1 - a[i];
    }
    int tmp = -0x3f3f3f3f, ans = -0x3f3f3f3f;
    for (int i = 1; i <= n; i++) {
      tmp = max(tmp, p[i]); // 表示前些天卖出的最大利益
      // 表示前些天卖出的最大利益+这天买入的最大利益
      // 则为这些天两次买入卖出的最大利益
      ans = max(ans, tmp + q[i]);
    }
    cout << ans << endl;
  }
  return 0;
}
